@kjm So you are averaging over 1000 values. You can also use a low pass filter, which is a little bit simpler
See also the lessons and analysis by Bernd Boser:
https://github.com/bboser/IoT49
and especially
https://github.com/bboser/IoT49/blob/master/doc/analog_io.md
which shows a noise of about 25 LSB. So your averaging of 1024 values (25*25=625) matches that. B.t.w: good ADCs have a noise <= 1 LSB.